home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Tool Chest / Development Tools & Languages / Macintosh Common Lisp Related / 2.01 sources / Library-2.01 / Interfaces / OSUTILS.lisp < prev    next >
Encoding:
Text File  |  1993-09-16  |  17.0 KB  |  575 lines  |  [TEXT/CCL2]

  1.  
  2. (in-package :traps)             ; 
  3. ; Created: Sunday, January 6, 1991 at 10:51 PM
  4. ;     OSUtils.p
  5. ;     Pascal Interface to the Macintosh Libraries
  6. ;         Copyright Apple Computer, Inc.    1985-1990
  7. ;         All rights reserved
  8.  
  9. ;;;;;;;;;;;;;
  10. ;
  11. ; Modification History
  12. ;
  13. ; 04/28/93 mwp Release
  14. ; 01/16/93 bill in #_Date2Secs say %put-long instead of %put-ptr
  15. ; 08/05/92 bill fix #_EqualString
  16. ; ------------- 2.0
  17. ; 11/04/91 bill fix _HandAndHand
  18. ; 09/09/91 bill Fix _SwapMMUMode
  19. ; 08/23/91 bill remove bogus return specs in call forms
  20. ;               Comment out _SetCurrentA5 & _SetA5
  21. ;
  22.  
  23. ; $IFC UNDEFINED UsingIncludes
  24. ; $SETC UsingIncludes := 0
  25. ; $ENDC
  26.  
  27. ; $IFC NOT UsingIncludes
  28.  
  29. ; $ENDC
  30.  
  31. ; $IFC UNDEFINED UsingOSUtils
  32. ; $SETC UsingOSUtils := 1
  33.  
  34. ; $I+
  35. ; $SETC OSUtilsIncludes := UsingIncludes
  36. ; $SETC UsingIncludes := 1
  37. ; $IFC UNDEFINED UsingTypes
  38.  
  39. (require-interface 'TYPES)      ; $I $$Shell(PInterfaces)Types.p
  40. ; $ENDC
  41. ; $SETC UsingIncludes := OSUtilsIncludes
  42.  
  43. (defconstant $useFree 0)
  44. (defconstant $useATalk 1)
  45. (defconstant $useAsync 2)
  46. (defconstant $useExtClk 3)      ; Externally clocked
  47. (defconstant $useMIDI 4)
  48.  
  49. ; *** Environs Equates ***
  50. (defconstant $curSysEnvVers 2)  ; Updated to equal latest SysEnvirons version
  51.  
  52. ;  Machine Types 
  53. (defconstant $envMac -1)
  54. (defconstant $envXL -2)
  55. (defconstant $envMachUnknown 0)
  56. (defconstant $env512KE 1)
  57. (defconstant $envMacPlus 2)
  58. (defconstant $envSE 3)
  59. (defconstant $envMacII 4)
  60. (defconstant $envMacIIx 5)
  61. (defconstant $envMacIIcx 6)
  62. (defconstant $envSE30 7)
  63. (defconstant $envPortable 8)
  64. (defconstant $envMacIIci 9)
  65. (defconstant $envMacIIfx 11)
  66.  
  67. ;  CPU types 
  68. (defconstant $envCPUUnknown 0)
  69. (defconstant $env68000 1)
  70. (defconstant $env68010 2)
  71. (defconstant $env68020 3)
  72. (defconstant $env68030 4)
  73. (defconstant $env68040 5)
  74.  
  75. ;  Keyboard types 
  76. (defconstant $envUnknownKbd 0)
  77. (defconstant $envMacKbd 1)
  78. (defconstant $envMacAndPad 2)
  79. (defconstant $envMacPlusKbd 3)
  80. (defconstant $envAExtendKbd 4)
  81. (defconstant $envStandADBKbd 5)
  82. (defconstant $envPrtblADBKbd 6)
  83. (defconstant $envPrtblISOKbd 7)
  84. (defconstant $envStdISOADBKbd 8)
  85. (defconstant $envExtISOADBKbd 9)
  86. (defconstant $false32b 0)       ; 24 bit addressing error
  87. (defconstant $true32b 1)        ; 32 bit addressing error
  88.  
  89. ;  result types for RelString Call 
  90. (defconstant $sortsBefore -1)   ; first string < second string
  91. (defconstant $sortsEqual 0)     ; first string = second string
  92. (defconstant $sortsAfter 1)     ; first string > second string
  93.  
  94. (def-mactype :qtypes (find-mactype :unsigned-byte))
  95. (defconstant $dummyType 0)
  96. (defconstant $vType 1)
  97. (defconstant $ioQType 2)
  98. (defconstant $drvQType 3)
  99. (defconstant $evType 4)
  100. (defconstant $fsQType 5)
  101. (defconstant $sIQType 6)
  102. (defconstant $dtQType 7)
  103.  
  104. (def-mactype :traptype (find-mactype :unsigned-byte))
  105. (defconstant $OSTrap 0)
  106. (defconstant $ToolTrap 1)
  107.  
  108. (def-mactype :paramblktype (find-mactype :unsigned-word))
  109. (defconstant $IOParam 0)
  110. (defconstant $FileParam 1)
  111. (defconstant $VolumeParam 2)
  112. (defconstant $CntrlParam 3)
  113. (defconstant $SlotDevParam 4)
  114. (defconstant $MultiDevParam 5)
  115. (defconstant $AccessParam 6)
  116. (defconstant $ObjParam 7)
  117. (defconstant $CopyParam 8)
  118. (defconstant $WDParam 9)
  119. (defconstant $FIDParam 10)
  120. (defconstant $CSParam 11)
  121. (defconstant $ForeignPrivParam 12)
  122.  
  123. (def-mactype :syspptr (find-mactype :pointer))
  124. (defrecord SysParmType 
  125.    (valid :unsigned-byte)
  126.    (aTalkA :unsigned-byte)
  127.    (aTalkB :unsigned-byte)
  128.    (config :unsigned-byte)
  129.    (portA :signed-integer)
  130.    (portB :signed-integer)
  131.    (alarm :signed-long)
  132.    (font :signed-integer)
  133.    (kbdPrint :signed-integer)
  134.    (volClik :signed-integer)
  135.    (misc :signed-integer)
  136.    )
  137.  
  138. ; QElemPtr = ^QElem;
  139.  
  140. (def-mactype :qelemptr (find-mactype :pointer))
  141.  
  142. (defrecord FInfo 
  143.    (fdType :ostype)             ; the type of the file
  144.    (fdCreator :ostype)          ; file's creator
  145.    (fdFlags :signed-integer)    ; flags ex. hasbundle,invisible,locked, etc.
  146.    (fdLocation :point)          ; file's location in folder
  147.    (fdFldr :signed-integer)     ; folder containing file
  148.    )
  149.  
  150. (defrecord VCB 
  151.    (qLink (:pointer :qelem))
  152.    (qType :signed-integer)
  153.    (vcbFlags :signed-integer)
  154.    (vcbSigWord :signed-integer)
  155.    (vcbCrDate :signed-long)
  156.    (vcbLsMod :signed-long)
  157.    (vcbAtrb :signed-integer)
  158.    (vcbNmFls :signed-integer)
  159.    (vcbVBMSt :signed-integer)
  160.    (vcbAllocPtr :signed-integer)
  161.    (vcbNmAlBlks :signed-integer)
  162.    (vcbAlBlkSiz :signed-long)
  163.    (vcbClpSiz :signed-long)
  164.    (vcbAlBlSt :signed-integer)
  165.    (vcbNxtCNID :signed-long)
  166.    (vcbFreeBks :signed-integer)
  167.    (vcbVN (:string 27))
  168.    (vcbDrvNum :signed-integer)
  169.    (vcbDRefNum :signed-integer)
  170.    (vcbFSID :signed-integer)
  171.    (vcbVRefNum :signed-integer)
  172.    (vcbMAdr :pointer)
  173.    (vcbBufAdr :pointer)
  174.    (vcbMLen :signed-integer)
  175.    (vcbDirIndex :signed-integer)
  176.    (vcbDirBlk :signed-integer)
  177.    (vcbVolBkUp :signed-long)
  178.    (vcbVSeqNum :signed-integer)
  179.    (vcbWrCnt :signed-long)
  180.    (vcbXTClpSiz :signed-long)
  181.    (vcbCTClpSiz :signed-long)
  182.    (vcbNmRtDirs :signed-integer)
  183.    (vcbFilCnt :signed-long)
  184.    (vcbDirCnt :signed-long)
  185.    (vcbFndrInfo (:array :signed-long 8))
  186.    (vcbVCSize :signed-integer)
  187.    (vcbVBMCSiz :signed-integer)
  188.    (vcbCtlCSiz :signed-integer)
  189.    (vcbXTAlBlks :signed-integer)
  190.    (vcbCTAlBlks :signed-integer)
  191.    (vcbXTRef :signed-integer)
  192.    (vcbCTRef :signed-integer)
  193.    (vcbCtlBuf :pointer)
  194.    (vcbDirIDM :signed-long)
  195.    (vcbOffsM :signed-integer)
  196.    )
  197.  
  198. (def-mactype :drvqelptr (find-mactype :pointer))
  199. (defrecord DrvQEl 
  200.    (qLink (:pointer :qelem))
  201.    (qType :signed-integer)
  202.    (dQDrive :signed-integer)
  203.    (dQRefNum :signed-integer)
  204.    (dQFSID :signed-integer)
  205.    (dQDrvSz :signed-integer)
  206.    (dQDrvSz2 :signed-integer)
  207.    )
  208.  
  209. (def-mactype :parmblkptr (find-mactype :pointer))
  210. (defrecord ParamBlockRec 
  211.    (qLink (:pointer :qelem))
  212.    (qType :signed-integer)
  213.    (ioTrap :signed-integer)
  214.    (ioCmdAddr :pointer)
  215.    (ioCompletion :pointer)
  216.    (ioResult :signed-integer)
  217.    (ioNamePtr (:pointer (:string 255)))
  218.    (ioVRefNum :signed-integer)
  219.    (:variant 
  220.  
  221.       ((ioRefNum :signed-integer)
  222.       (ioVersNum :signed-byte)
  223.       (ioPermssn :signed-byte)
  224.       (ioMisc :pointer)
  225.       (ioBuffer :pointer)
  226.       (ioReqCount :signed-long)
  227.       (ioActCount :signed-long)
  228.       (ioPosMode :signed-integer)
  229.       (ioPosOffset :signed-long))
  230.  
  231.       ((ioFRefNum :signed-integer)
  232.       (ioFVersNum :signed-byte)
  233.       (filler1 :signed-byte)
  234.       (ioFDirIndex :signed-integer)
  235.       (ioFlAttrib :signed-byte)
  236.       (ioFlVersNum :signed-byte)
  237.       (ioFlFndrInfo :finfo)
  238.       (ioFlNum :signed-long)
  239.       (ioFlStBlk :signed-integer)
  240.       (ioFlLgLen :signed-long)
  241.       (ioFlPyLen :signed-long)
  242.       (ioFlRStBlk :signed-integer)
  243.       (ioFlRLgLen :signed-long)
  244.       (ioFlRPyLen :signed-long)
  245.       (ioFlCrDat :signed-long)
  246.       (ioFlMdDat :signed-long))
  247.  
  248.       ((filler2 :signed-long)
  249.       (ioVolIndex :signed-integer)
  250.       (ioVCrDate :signed-long)
  251.       (ioVLsBkUp :signed-long)
  252.       (ioVAtrb :signed-integer)
  253.       (ioVNmFls :signed-integer)
  254.       (ioVDirSt :signed-integer)
  255.       (ioVBlLn :signed-integer)
  256.       (ioVNmAlBlks :signed-integer)
  257.       (ioVAlBlkSiz :signed-long)
  258.       (ioVClpSiz :signed-long)
  259.       (ioAlBlSt :signed-integer)
  260.       (ioVNxtFNum :signed-long)
  261.       (ioVFrBlk :signed-integer))
  262.  
  263.       ((ioCRefNum :signed-integer)
  264.       (csCode :signed-integer)
  265.       (csParam (:array :signed-integer 11)))
  266.  
  267.       ((filler3 :signed-long)
  268.       (ioMix :pointer)
  269.       (ioFlags :signed-integer)
  270.       (ioSlot :signed-byte)
  271.       (ioID :signed-byte))
  272.  
  273.       ((filler4 :signed-long)
  274.       (ioMMix :pointer)
  275.       (ioMFlags :signed-integer)
  276.       (ioSEBlkPtr :pointer))
  277.       ))
  278.  
  279. (def-mactype :evqelptr (find-mactype :pointer))
  280. (defrecord EvQEl 
  281.    (qLink (:pointer :qelem))
  282.    (qType :signed-integer)
  283.    (evtQWhat :signed-integer)   ; this part is identical to the EventRecord as...
  284.    (evtQMessage :signed-long)   ; defined in ToolIntf
  285.    (evtQWhen :signed-long)
  286.    (evtQWhere :point)
  287.    (evtQModifiers :signed-integer)
  288.    )
  289.  
  290. (defrecord VBLTask 
  291.    (qLink (:pointer :qelem))
  292.    (qType :signed-integer)
  293.    (vblAddr :pointer)
  294.    (vblCount :signed-integer)
  295.    (vblPhase :signed-integer)
  296.    )
  297.  
  298. (defrecord DeferredTask 
  299.    (qLink (:pointer :qelem))    ; next queue entry
  300.    (qType :signed-integer)      ; queue type
  301.    (dtFlags :signed-integer)    ; reserved
  302.    (dtAddr :pointer)            ; pointer to task
  303.    (dtParm :signed-long)        ; optional parameter
  304.    (dtReserved :signed-long)    ; reserved--should be 0
  305.    )
  306.  
  307. (defrecord QElem 
  308.    (:variant 
  309.  
  310.       ((dtQElem :deferredtask)) ; deferred
  311.  
  312.       ((vblQElem :vbltask))     ; vertical blanking
  313.  
  314.       ((ioQElem :paramblockrec)); I/O parameter block
  315.  
  316.       ((drvQElem :drvqel))      ; drive
  317.  
  318.       ((evQElem :evqel))        ; event
  319.  
  320.       ((vcbQElem :vcb))         ; volume control block
  321.       ))
  322.  
  323. (def-mactype :qhdrptr (find-mactype :pointer))
  324. (defrecord QHdr 
  325.    (qFlags :signed-integer)
  326.    (qHead (:pointer :qelem))
  327.    (qTail (:pointer :qelem))
  328.    )
  329.  
  330. (defrecord DateTimeRec 
  331.    (year :signed-integer)
  332.    (month :signed-integer)
  333.    (day :signed-integer)
  334.    (hour :signed-integer)
  335.    (minute :signed-integer)
  336.    (second :signed-integer)
  337.    (dayOfWeek :signed-integer)
  338.    )
  339.  
  340. (defrecord SysEnvRec 
  341.    (environsVersion :signed-integer)
  342.    (machineType :signed-integer)
  343.    (systemVersion :signed-integer)
  344.    (processor :signed-integer)
  345.    (hasFPU :boolean)
  346.    (hasColorQD :boolean)
  347.    (keyBoardType :signed-integer)
  348.    (atDrvrVersNum :signed-integer)
  349.    (sysVRefNum :signed-integer)
  350.    )
  351.  
  352.  
  353. (deftrap _getsyspptr nil
  354.    (:no-trap (:pointer :sysparmtype))
  355.    (:no-trap (%int-to-ptr #x1f8)))
  356.  
  357. (deftrap _sysbeep ((duration :signed-integer))
  358.    nil
  359.    (:stack-trap #xA9C8))
  360.  
  361. (deftrap _keytrans ((transdata :pointer) (keycode :signed-integer) (state (:pointer :signed-long)))
  362.    (:stack :signed-long)
  363.    (:stack-trap #xA9C3))
  364.  
  365. (deftrap _dtinstall ((dttaskptr (:pointer :qelem)))
  366.    (:d0 :signed-integer)
  367.    (:register-trap #xA082 :a0 dttaskptr))
  368.  
  369. (deftrap _getmmumode nil
  370.    (:no-trap :signed-byte)
  371.    (:no-trap (ccl::%get-signed-byte (%int-to-ptr #xcb2))))
  372.  
  373. (deftrap _swapmmumode ((mode (:pointer :signed-byte)))
  374.          (:no-trap :byte)
  375.   (:no-trap (setf (%get-byte mode)
  376.                   (ccl:register-trap #xA05D :d0 (%get-byte mode) :d0))))
  377.  
  378. (deftrap _sysenvirons ((versionrequested :signed-integer) (theworld (:pointer :sysenvrec)))
  379.    (:d0 :signed-integer)
  380.    (:register-trap #xA090 :d0 versionrequested :a0 theworld))
  381.  
  382. ; Warning. Assuming that (pointer to long word secs) matches (time (:pointer :signed-long)) in trap readdatetime
  383. (deftrap _readdatetime ((time (:pointer :signed-long)))
  384.    (:a0 :signed-integer)
  385.    (:register-trap #xA039 :a0 time))
  386.  
  387. (deftrap _getdatetime ((secs (:pointer :signed-long)))
  388.    nil
  389.    (:no-trap (%put-long secs (%get-long (%int-to-ptr #x20c)))))
  390.  
  391. ; Warning. Assuming that (secs long word) matches (time :signed-long) in trap setdatetime
  392. (deftrap _setdatetime ((time :signed-long))
  393.    (:d0 :signed-integer)
  394.    (:register-trap #xA03A :d0 time))
  395.  
  396. (deftrap _settime ((d :datetimerec))
  397.    nil
  398.    (:no-trap (ccl:register-trap #xA03A :d0 (ccl:register-trap #xA9C7 :a0 d :d0))))
  399.  
  400. (deftrap _gettime ((d (:pointer :datetimerec)))
  401.    nil
  402.    (:register-trap #xA9C6 :d0 (%get-long (%int-to-ptr #x020C)) :a0 d))
  403.  
  404. (deftrap _date2secs ((d :datetimerec) (secs (:pointer :signed-long)))
  405.    nil
  406.   (:no-trap
  407.    (%put-long secs (ccl:register-trap #xa9C7 :a0 d :d0))))
  408.  
  409. (deftrap _secs2date ((secs :signed-long) (d (:pointer :datetimerec)))
  410.    nil
  411.    (:register-trap #xA9C6 :d0 secs :a0 d))
  412.  
  413. (deftrap _delay ((numticks :signed-long) (finalticks (:pointer :signed-long)))
  414.    nil
  415.    (:no-trap (%put-long finalticks (ccl:register-trap #xA03B :a0 (%int-to-ptr numticks) :d0))))
  416.  
  417. (deftrap _gettrapaddress ((trapnum :signed-integer))
  418.    (:a0 :signed-long)
  419.    (:register-trap #xA146 :d0 trapnum ))
  420.  
  421. (deftrap _settrapaddress ((trapaddr :signed-long) (trapnum :signed-integer))
  422.    nil
  423.    (:register-trap #xA047 :a0 trapaddr :d0 trapnum))
  424.  
  425.  
  426. (deftrap _ngettrapaddress ((trapnum :signed-integer))
  427.    (:a0 :signed-long)
  428.    (:register-trap #xA346 :d0 trapnum))
  429.  
  430. (deftrap _nsettrapaddress ((trapaddr :signed-long) (trapnum :signed-integer))
  431.    nil
  432.    (:register-trap #xA247 :a0 trapaddr :d0 trapnum))
  433.  
  434. (deftrap _getostrapaddress ((trapnum :signed-integer))
  435.    (:a0 :signed-long)
  436.    (:register-trap #xA346 :d0 trapnum :a0))
  437.  
  438. (deftrap _setostrapaddress ((trapaddr :signed-long) (trapnum :signed-integer))
  439.    nil
  440.    (:register-trap #xA247 :a0 trapaddr :d0 trapnum))
  441.  
  442. (deftrap _gettooltrapaddress ((trapnum :signed-integer))
  443.    (:a0 :signed-long)
  444.    (:register-trap #xA746 :d0 trapnum))
  445.  
  446. (deftrap _settooltrapaddress ((trapaddr :signed-long) (trapnum :signed-integer))
  447.    nil
  448.    (:register-trap #xA647 :a0 trapaddr :d0 trapnum))
  449.  
  450. (deftrap _gettoolboxtrapaddress ((trapnum :signed-integer))
  451.    (:a0 :signed-long)
  452.    (:register-trap #xA746 :d0 trapnum))
  453.  
  454. (deftrap _settoolboxtrapaddress ((trapaddr :signed-long) (trapnum :signed-integer))
  455.    nil
  456.    (:register-trap #xA647 :a0 trapaddr :d0 trapnum))
  457.  
  458. (deftrap _writeparam nil
  459.    (:d0 :signed-integer)
  460.    (:register-trap #xA038))
  461.  
  462. ; the CaseSens parameter is set true with the :CASE keyword.
  463. ; The DiacSens parameter is set true with the :MARKS keyword.
  464. ; e.g. (#_EqualString :marks :case str1 str2)
  465. (DEFTRAP _EQUALSTRING ((STR1 (:STRING 255)) (STR2 (:STRING 255)))
  466.   (:D0 :signed-integer)
  467.   (zerop (the fixnum
  468.            (:REGISTER-TRAP 41020 
  469.                            :A0 (%inc-ptr str1)
  470.                            :A1 (%inc-ptr str2)
  471.                            :D0 (LOGIOR (the fixnum (ASH (the fixnum (%GET-BYTE STR1))
  472.                                                         16))
  473.                                        (the fixnum (%GET-BYTE STR2)))))))
  474.  
  475. (deftrap _cmpstring ((s1 :pointer) (s2 :pointer) (lengths :unsigned-long))
  476.   (:d0 :signed-integer)
  477.   (:register-trap #xA03C :a0 s1 :a1 s2 :d0 lengths))
  478.  
  479. (deftrap _uprstring ((thestring (:pointer (:string 255))))
  480.    nil
  481.    (:register-trap #xA054 :d0 (ccl:%get-unsigned-byte the-string) :a0 (%inc-ptr thestring )))
  482.  
  483. (deftrap _enqueue ((qelement (:pointer :qelem)) (qheader (:pointer :qhdr)))
  484.    nil
  485.    (:register-trap #xA96F :a0 qelement :a1 qheader))
  486.  
  487. (deftrap _dequeue ((qelement (:pointer :qelem)) (qheader (:pointer :qhdr)))
  488.    (:d0 :signed-integer)
  489.    (:register-trap #xA96E :a0 qelement :a1 qheader))
  490.  
  491. #| If you really want to do this, it's time to learn LAP
  492. (deftrap _setcurrenta5 nil
  493.    (:no-trap :signed-long)
  494.    (:no-trap (setcurrentA5)))
  495.  
  496. (deftrap _seta5 ((newa5 :signed-long))
  497.    (:no-trap :signed-long)
  498.    (:no-trap (setA5 newA5)))
  499. |#
  500.  
  501. (deftrap _environs ((rom (:pointer :signed-integer)) (machine (:pointer :signed-integer)))
  502.    nil
  503.    (:no-trap (environs rom machine)))
  504.  
  505. (deftrap _relstring ((str1 (:string 255)) (str2 (:string 255)))
  506.   (:d0 :signed-integer)
  507.   (:register-trap #xA050 
  508.                   :a0 (%inc-ptr str1) 
  509.                   :a1 (%inc-ptr str2) 
  510.                   :d0 (+ (ash 16 (%get-unsigned-byte str1)) (%get-unsigned-byte str2))))
  511.  
  512. (deftrap _handtohand ((thehndl (:pointer :handle)))
  513.    (:no-trap :signed-integer)
  514.    (:no-trap (ccl::%stack-block ((ret 8))
  515.                (ccl::%gen-trap #xA9E1 :return-block ret :a0 (%get-ptr thehndl) '(:d0 :a0))
  516.                (%put-ptr thehndl (%get-ptr ret 4))
  517.                (%get-signed-word ret 2))))
  518.  
  519. (deftrap _ptrtoxhand ((srcptr :pointer) (dsthndl :handle) (size :signed-long))
  520.    (:d0 :signed-integer)
  521.    (:register-trap #xA9E2 :a0 srcptr :a1 dsthndl :d0 size))
  522.  
  523. (deftrap _ptrtohand ((srcptr :pointer) (dsthndl (:pointer :handle)) (size :signed-long))
  524.    (:no-trap :signed-integer)
  525.    (:no-trap (ccl::%stack-block ((ret 8))
  526.                (ccl::%gen-trap #xA9E3 :return-block ret :a0 srcptr :d0 size '(:d0 :a0))
  527.                (%put-ptr dsthndl (%get-ptr ret 4))
  528.                (%get-signed-word ret 2))))
  529.  
  530. (deftrap _handandhand ((hand1 :handle) (hand2 :handle))
  531.    (:d0 :signed-integer)
  532.    (:register-trap #xA9E4 :a0 hand1 :a1 hand2))
  533.  
  534. (deftrap _ptrandhand ((ptr1 :pointer) (hand2 :handle) (size :signed-long))
  535.    (:d0 :signed-integer)
  536.    (:register-trap #xA9EF :a0 ptr1 :a1 hand2 :d0 size))
  537.  
  538. (deftrap _initutil nil
  539.    (:d0 :signed-integer)
  540.    (:register-trap #xA03f))
  541.  
  542. (deftrap _swapinstructioncache ((cacheenable :boolean))
  543.    (:a0 :boolean)
  544.    (:register-trap #xA198 :a0 (%int-to-ptr cacheenable) :d0 0))
  545.  
  546. (deftrap _flushinstructioncache nil
  547.    nil
  548.    (:register-trap #xA198 :d0 1))
  549.  
  550. (deftrap _swapdatacache ((cacheenable :boolean))
  551.    (:a0 :boolean)
  552.    (:register-trap #xA198 :a0 (%int-to-ptr cacheenable) :d0 2))
  553.  
  554. (deftrap _flushdatacache nil
  555.    nil
  556.    (:register-trap #xA198 :d0 3))
  557.  
  558. ; $ENDC
  559.  
  560.  
  561. (export '($foreignprivparam $csparam $fidparam $wdparam $copyparam $objparam
  562.           $accessparam $multidevparam $slotdevparam $cntrlparam $volumeparam
  563.           $fileparam $ioparam $tooltrap $ostrap $dtqtype $siqtype $fsqtype
  564.           $evtype $drvqtype $ioqtype $vtype $dummytype $sortsafter $sortsequal
  565.           $sortsbefore $true32b $false32b $envextisoadbkbd $envstdisoadbkbd
  566.           $envprtblisokbd $envprtbladbkbd $envstandadbkbd $envaextendkbd
  567.           $envmacpluskbd $envmacandpad $envmackbd $envunknownkbd $env68040
  568.           $env68030 $env68020 $env68010 $env68000 $envcpuunknown $envmaciifx
  569.           $envmaciici $envportable $envse30 $envmaciicx $envmaciix $envmacii
  570.           $envse $envmacplus $env512ke $envmachunknown $envxl $envmac
  571.           $cursysenvvers $usemidi $useextclk $useasync $useatalk $usefree))
  572. (provide-interface 'OSUTILS)
  573.